// src/utils/http.js

import axios from 'axios';

// 创建 axios 实例
const instance = axios.create({
    baseURL: 'http://localhost:8088', // 替换为你的 API 基础 URL
    timeout: 5000, // 设置请求超时时间
    withCredentials: true // 允许携带凭证
});

// 请求拦截器
instance.interceptors.request.use(
    config => {
        // 在发送请求之前做些什么，例如添加 token
        const token = localStorage.getItem('token');
        if (token) {
            config.headers.Authorization = `Bearer ${token}`;
        }
        return config;
    },
    error => {
        // 对请求错误做些什么
        console.error(error);
        return Promise.reject(error);
    }
);

// 响应拦截器
instance.interceptors.response.use(
    response => {
        // 请求成功
        // 对响应数据做点什么
        return response.data;
    },
    error => {
        // 对响应错误做点什么
        if (error.response) {
            switch (error.response.status) {
                case 401:
                    // 处理未授权的情况
                    break;
                case 404:
                    // 处理资源未找到的情况
                    break;
                default:
                    console.error(`An error occurred: ${error.response.status}`);
            }
        }
        return Promise.reject(error);
    }
);

export default instance;